home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / GXPrinting.p < prev    next >
Encoding:
Text File  |  1997-08-12  |  65.8 KB  |  2,099 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        GXPrinting.p
  3.  
  4.      Contains:    This file contains all printing APIs except for driver/extension specific ones.
  5.  
  6.      Version:    Technology:    Quickdraw GX 1.1
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1994-1997 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT GXPrinting;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __GXPRINTING__}
  28. {$SETC __GXPRINTING__ := 1}
  29.  
  30. {$I+}
  31. {$SETC GXPrintingIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __CONDITIONALMACROS__}
  35. {$I ConditionalMacros.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __COLLECTIONS__}
  38. {$I Collections.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __DIALOGS__}
  41. {$I Dialogs.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __ERRORS__}
  44. {$I Errors.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __FILES__}
  47. {$I Files.p}
  48. {$ENDC}
  49. {$IFC UNDEFINED __GXFONTS__}
  50. {$I GXFonts.p}
  51. {$ENDC}
  52. {$IFC UNDEFINED __GXMATH__}
  53. {$I GXMath.p}
  54. {$ENDC}
  55. {$IFC UNDEFINED __GXTYPES__}
  56. {$I GXTypes.p}
  57. {$ENDC}
  58. {$IFC UNDEFINED __LISTS__}
  59. {$I Lists.p}
  60. {$ENDC}
  61. {$IFC UNDEFINED __MENUS__}
  62. {$I Menus.p}
  63. {$ENDC}
  64. {$IFC UNDEFINED __GXMESSAGES__}
  65. {$I GXMessages.p}
  66. {$ENDC}
  67. {$IFC UNDEFINED __PRINTING__}
  68. {$I Printing.p}
  69. {$ENDC}
  70. {$IFC UNDEFINED __QUICKDRAW__}
  71. {$I Quickdraw.p}
  72. {$ENDC}
  73.  
  74.  
  75. {$PUSH}
  76. {$ALIGN MAC68K}
  77. {$LibExport+}
  78.  
  79. {*******************************************************************
  80.                     Start of old "GXPrintingManager.h/a/p" interface file.
  81.             ********************************************************************}
  82. { ------------------------------------------------------------------------------
  83.  
  84.                             Printing Manager API Contants and Types
  85.  
  86. -------------------------------------------------------------------------------- }
  87.  
  88.  
  89. TYPE
  90.     gxOwnerSignature                    = LONGINT;
  91. {$IFC OLDROUTINENAMES }
  92.     Signature                            = LONGINT;
  93. {$ENDC}  {OLDROUTINENAMES}
  94.  
  95. {
  96.  
  97.     ABSTRACT DATA TYPES
  98.  
  99. }
  100. {
  101.    typedef struct gxPrivatePrinterRecord *gxPrinter;
  102.    typedef struct gxPrivateJobRecord *gxJob;
  103.    typedef struct gxPrivateFormatRecord *gxFormat;
  104.    typedef struct gxPrivatePaperTypeRecord *gxPaperType;
  105.    typedef struct gxPrivatePrintFileRecord *gxPrintFile;
  106. }
  107.  
  108.     gxPrinter = ^LONGINT;
  109.     gxJob = ^LONGINT;
  110.     gxFormat = ^LONGINT;
  111.     gxPaperType = ^LONGINT;
  112.     gxPrintFile = ^LONGINT;
  113. { Possible values for LoopStatus }
  114.     gxLoopStatus                        = BOOLEAN;
  115.  
  116. CONST
  117.     gxStopLooping                = 0;
  118.     gxKeepLooping                = 1;
  119.  
  120.  
  121. TYPE
  122.     GXViewDeviceProcPtr = ProcPtr;  { FUNCTION GXViewDevice(aViewDevice: gxViewDevice; refCon: UNIV Ptr): ByteParameter; }
  123.  
  124.     GXViewDeviceUPP = UniversalProcPtr;
  125.  
  126. CONST
  127.     uppGXViewDeviceProcInfo = $000003D0;
  128.  
  129. FUNCTION NewGXViewDeviceProc(userRoutine: GXViewDeviceProcPtr): GXViewDeviceUPP;
  130.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  131.     INLINE $2E9F;
  132.     {$ENDC}
  133.  
  134. FUNCTION CallGXViewDeviceProc(aViewDevice: gxViewDevice; refCon: UNIV Ptr; userRoutine: GXViewDeviceUPP): ByteParameter;
  135.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  136.     INLINE $205F, $4E90;
  137.     {$ENDC}
  138.  
  139. TYPE
  140.     GXFormatProcPtr = ProcPtr;  { FUNCTION GXFormat(aFormat: gxFormat; refCon: UNIV Ptr): ByteParameter; }
  141.  
  142.     GXFormatUPP = UniversalProcPtr;
  143.  
  144. CONST
  145.     uppGXFormatProcInfo = $000003D0;
  146.  
  147. FUNCTION NewGXFormatProc(userRoutine: GXFormatProcPtr): GXFormatUPP;
  148.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  149.     INLINE $2E9F;
  150.     {$ENDC}
  151.  
  152. FUNCTION CallGXFormatProc(aFormat: gxFormat; refCon: UNIV Ptr; userRoutine: GXFormatUPP): ByteParameter;
  153.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  154.     INLINE $205F, $4E90;
  155.     {$ENDC}
  156.  
  157. TYPE
  158.     GXPaperTypeProcPtr = ProcPtr;  { FUNCTION GXPaperType(aPapertype: gxPaperType; refCon: UNIV Ptr): ByteParameter; }
  159.  
  160.     GXPaperTypeUPP = UniversalProcPtr;
  161.  
  162. CONST
  163.     uppGXPaperTypeProcInfo = $000003D0;
  164.  
  165. FUNCTION NewGXPaperTypeProc(userRoutine: GXPaperTypeProcPtr): GXPaperTypeUPP;
  166.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  167.     INLINE $2E9F;
  168.     {$ENDC}
  169.  
  170. FUNCTION CallGXPaperTypeProc(aPapertype: gxPaperType; refCon: UNIV Ptr; userRoutine: GXPaperTypeUPP): ByteParameter;
  171.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  172.     INLINE $205F, $4E90;
  173.     {$ENDC}
  174.  
  175. TYPE
  176.     GXPrintingFlattenProcPtr = ProcPtr;  { FUNCTION GXPrintingFlatten(size: LONGINT; data: UNIV Ptr; refCon: UNIV Ptr): OSErr; }
  177.  
  178.     GXPrintingFlattenUPP = UniversalProcPtr;
  179.  
  180. CONST
  181.     uppGXPrintingFlattenProcInfo = $00000FE0;
  182.  
  183. FUNCTION NewGXPrintingFlattenProc(userRoutine: GXPrintingFlattenProcPtr): GXPrintingFlattenUPP;
  184.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  185.     INLINE $2E9F;
  186.     {$ENDC}
  187.  
  188. FUNCTION CallGXPrintingFlattenProc(size: LONGINT; data: UNIV Ptr; refCon: UNIV Ptr; userRoutine: GXPrintingFlattenUPP): OSErr;
  189.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  190.     INLINE $205F, $4E90;
  191.     {$ENDC}
  192. {$IFC OLDROUTINENAMES }
  193.  
  194. TYPE
  195.     gxViewDeviceProc                    = GXViewDeviceProcPtr;
  196.     gxFormatProc                        = GXFormatProcPtr;
  197.     gxPaperTypeProc                        = GXPaperTypeProcPtr;
  198.     gxPrintingFlattenProc                = GXPrintingFlattenProcPtr;
  199. {$ENDC}  {OLDROUTINENAMES}
  200.  
  201. {
  202.     The following constants are used to set collection item flags in printing
  203.     collections. The Printing Manager purges certain items whenever a driver
  204.     switch occurs. If the formatting driver changes, all items marked as
  205.     gxVolatileFormattingDriverCategory will be purged.  If the output driver
  206.     changes, all items marked as gxVolatileOutputDriverCategory will be purged.
  207.     Note that to prevent items from being flattened when GXFlattenJob is called,
  208.     you should unset the collectionPersistenceBit (defined in Collections.h),
  209.     which is on by default.
  210. }
  211. { Structure stored in collection items' user attribute bits }
  212.  
  213. TYPE
  214.     gxCollectionCategory                = INTEGER;
  215.  
  216. CONST
  217.     gxNoCollectionCategory        = $0000;
  218.     gxOutputDriverCategory        = $0001;
  219.     gxFormattingDriverCategory    = $0002;
  220.     gxDriverVolatileCategory    = $0004;
  221.     gxVolatileOutputDriverCategory = $0005;
  222.     gxVolatileFormattingDriverCategory = $0006;
  223.  
  224.  
  225. {
  226.  
  227.     >>>>>> JOB COLLECTION ITEMS <<<<<<
  228.  
  229. }
  230.  
  231. { gxJobInfo COLLECTION ITEM }
  232.     gxJobTag                    = 'job ';
  233.  
  234.  
  235. TYPE
  236.     gxJobInfoPtr = ^gxJobInfo;
  237.     gxJobInfo = RECORD
  238.         numPages:                LONGINT;                                {  Number of pages in the document  }
  239.         priority:                LONGINT;                                {  Priority of this job plus "is it on hold?"  }
  240.         timeToPrint:            LONGINT;                                {  When to print job, if scheduled  }
  241.         jobTimeout:                LONGINT;                                {  Timeout value, in ticks  }
  242.         firstPageToPrint:        LONGINT;                                {  Start printing from this page  }
  243.         jobAlert:                INTEGER;                                {  How to alert user when printing  }
  244.         appName:                Str31;                                    {  Which application printed the document  }
  245.         documentName:            Str31;                                    {  The name of the document being printed  }
  246.         userName:                Str31;                                    {  The owner name of the machine that printed the document  }
  247.     END;
  248.  
  249. { gxPDDDefaultSettingTag COLLECTION ITEM }
  250.  
  251. CONST
  252.     gxPDDDefaultSettingTag        = 'pdds';
  253.  
  254.  
  255. TYPE
  256.     gxPDDDefaultSettingInfoPtr = ^gxPDDDefaultSettingInfo;
  257.     gxPDDDefaultSettingInfo = RECORD
  258.         useDefaultSetting:        BOOLEAN;                                {  true if PDD default setting should be used  }
  259.         pad:                    SInt8;
  260.     END;
  261.  
  262. { priority field constants }
  263.  
  264. CONST
  265.     gxPrintJobHoldingBit        = $00001000;                    {  This bit is set if the job is on hold.  }
  266.  
  267.     gxPrintJobUrgent            = $00000001;
  268.     gxPrintJobAtTime            = $00000002;
  269.     gxPrintJobASAP                = $00000003;
  270.     gxPrintJobHolding            = $00001003;
  271.     gxPrintJobHoldingAtTime        = $00001002;
  272.     gxPrintJobHoldingUrgent        = $00001001;
  273.  
  274. { jobAlert field constants }
  275.     gxNoPrintTimeAlert            = 0;                            {  Don't alert user when we print  }
  276.     gxAlertBefore                = 1;                            {  Alert user before we print  }
  277.     gxAlertAfter                = 2;                            {  Alert user after we print  }
  278.     gxAlertBothTimes            = 3;                            {  Alert before and after we print  }
  279.  
  280. { jobTimeout field constants }
  281.     gxThirtySeconds                = 1800;                            {  30 seconds in ticks  }
  282.     gxTwoMinutes                = 7200;                            {  2 minutes in ticks  }
  283.  
  284.  
  285. { gxCollationTag COLLECTION ITEM }
  286.     gxCollationTag                = 'sort';
  287.  
  288.  
  289. TYPE
  290.     gxCollationInfoPtr = ^gxCollationInfo;
  291.     gxCollationInfo = RECORD
  292.         collation:                BOOLEAN;                                {  True if copies are to be collated  }
  293.         padByte:                SInt8;
  294.     END;
  295.  
  296.  
  297. { gxCopiesTag COLLECTION ITEM }
  298.  
  299. CONST
  300.     gxCopiesTag                    = 'copy';
  301.  
  302.  
  303. TYPE
  304.     gxCopiesInfoPtr = ^gxCopiesInfo;
  305.     gxCopiesInfo = RECORD
  306.         copies:                    LONGINT;                                {  Number of copies of the document to print  }
  307.     END;
  308.  
  309.  
  310. { gxPageRangeTag COLLECTION ITEM }
  311.  
  312. CONST
  313.     gxPageRangeTag                = 'rang';
  314.  
  315.  
  316. TYPE
  317.     gxSimplePageRangeInfoPtr = ^gxSimplePageRangeInfo;
  318.     gxSimplePageRangeInfo = RECORD
  319.         optionChosen:            SInt8;                                    {  From options listed below  }
  320.         printAll:                BOOLEAN;                                {  True if user wants to print all pages  }
  321.         fromPage:                LONGINT;                                {  For gxDefaultPageRange, current value  }
  322.         toPage:                    LONGINT;                                {  For gxDefaultPageRange, current value  }
  323.     END;
  324.  
  325.     gxPageRangeInfoPtr = ^gxPageRangeInfo;
  326.     gxPageRangeInfo = RECORD
  327.         simpleRange:            gxSimplePageRangeInfo;                    {  Info which will be returned for GetJobPageRange  }
  328.         fromString:                Str31;                                    {  For gxCustomizePageRange, current value  }
  329.         toString:                Str31;                                    {  For gxCustomizePageRange, current value  }
  330.         minFromPage:            LONGINT;                                {  For gxDefaultPageRange, we parse with this, ignored if nil  }
  331.         maxToPage:                LONGINT;                                {  For gxDefaultPageRange, we parse with this, ignored if nil  }
  332.         replaceString:            SInt8;                                    {  For gxReplacePageRange, string to display  }
  333.     END;
  334.  
  335.  
  336. { optionChosen field constants for SimplePageRangeInfo }
  337.  
  338. CONST
  339.     gxDefaultPageRange            = 0;
  340.     gxReplacePageRange            = 1;
  341.     gxCustomizePageRange        = 2;
  342.  
  343.  
  344. { gxQualityTag COLLECTION ITEM }
  345.     gxQualityTag                = 'qual';
  346.  
  347.  
  348. TYPE
  349.     gxQualityInfoPtr = ^gxQualityInfo;
  350.     gxQualityInfo = RECORD
  351.         disableQuality:            BOOLEAN;                                {  True to disable standard quality controls  }
  352.         padByte:                SInt8;
  353.         defaultQuality:            INTEGER;                                {  The default quality value  }
  354.         currentQuality:            INTEGER;                                {  The current quality value  }
  355.         qualityCount:            INTEGER;                                {  The number of quality menu items in popup menu  }
  356.         qualityNames:            SInt8;                                    {  An array of packed pascal strings for popup menu titles  }
  357.     END;
  358.  
  359.  
  360. { gxFileDestinationTag COLLECTION ITEM }
  361.  
  362. CONST
  363.     gxFileDestinationTag        = 'dest';
  364.  
  365.  
  366. TYPE
  367.     gxFileDestinationInfoPtr = ^gxFileDestinationInfo;
  368.     gxFileDestinationInfo = RECORD
  369.         toFile:                    BOOLEAN;                                {  True if destination is a file  }
  370.         padByte:                SInt8;
  371.     END;
  372.  
  373.  
  374. { gxFileLocationTag COLLECTION ITEM }
  375.  
  376. CONST
  377.     gxFileLocationTag            = 'floc';
  378.  
  379.  
  380. TYPE
  381.     gxFileLocationInfoPtr = ^gxFileLocationInfo;
  382.     gxFileLocationInfo = RECORD
  383.         fileSpec:                FSSpec;                                    {  Location to put file, if destination is file  }
  384.     END;
  385.  
  386.  
  387. { gxFileFormatTag COLLECTION ITEM }
  388.  
  389. CONST
  390.     gxFileFormatTag                = 'ffmt';
  391.  
  392.  
  393. TYPE
  394.     gxFileFormatInfoPtr = ^gxFileFormatInfo;
  395.     gxFileFormatInfo = RECORD
  396.         fileFormatName:            Str31;                                    {  Name of file format (e.g. "PostScript") if destination is file  }
  397.     END;
  398.  
  399.  
  400. { gxFileFontsTag COLLECTION ITEM }
  401.  
  402. CONST
  403.     gxFileFontsTag                = 'incf';
  404.  
  405.  
  406. TYPE
  407.     gxFileFontsInfoPtr = ^gxFileFontsInfo;
  408.     gxFileFontsInfo = RECORD
  409.         includeFonts:            SInt8;                                    {  Which fonts to include, if destination is file  }
  410.         padByte:                SInt8;
  411.     END;
  412.  
  413. { includeFonts field constants }
  414.  
  415. CONST
  416.     gxIncludeNoFonts            = 1;                            {  Include no fonts  }
  417.     gxIncludeAllFonts            = 2;                            {  Include all fonts  }
  418.     gxIncludeNonStandardFonts    = 3;                            {  Include only fonts that aren't in the standard LW set  }
  419.  
  420.  
  421. { gxPaperFeedTag COLLECTION ITEM }
  422.     gxPaperFeedTag                = 'feed';
  423.  
  424.  
  425. TYPE
  426.     gxPaperFeedInfoPtr = ^gxPaperFeedInfo;
  427.     gxPaperFeedInfo = RECORD
  428.         autoFeed:                BOOLEAN;                                {  True if automatic feed, false if manual  }
  429.         padByte:                SInt8;
  430.     END;
  431.  
  432.  
  433. { gxTrayFeedTag COLLECTION ITEM }
  434.  
  435. CONST
  436.     gxTrayFeedTag                = 'tray';
  437.  
  438.  
  439. TYPE
  440.     gxTrayIndex                            = LONGINT;
  441.     gxTrayFeedInfoPtr = ^gxTrayFeedInfo;
  442.     gxTrayFeedInfo = RECORD
  443.         feedTrayIndex:            gxTrayIndex;                            {  Tray to feed paper from  }
  444.         manualFeedThisPage:        BOOLEAN;                                {  Signals manual feeding for the page  }
  445.         padByte:                SInt8;
  446.     END;
  447.  
  448.  
  449. { gxManualFeedTag COLLECTION ITEM }
  450.  
  451. CONST
  452.     gxManualFeedTag                = 'manf';
  453.  
  454.  
  455. TYPE
  456.     gxManualFeedInfoPtr = ^gxManualFeedInfo;
  457.     gxManualFeedInfo = RECORD
  458.         numPaperTypeNames:        LONGINT;                                {  Number of paperTypes to manually feed  }
  459.         paperTypeNames:            ARRAY [0..0] OF Str31;                    {  Array of names of paperTypes to manually feed  }
  460.     END;
  461.  
  462.  
  463. { gxNormalMappingTag COLLECTION ITEM }
  464.  
  465. CONST
  466.     gxNormalMappingTag            = 'nmap';
  467.  
  468.  
  469. TYPE
  470.     gxNormalMappingInfoPtr = ^gxNormalMappingInfo;
  471.     gxNormalMappingInfo = RECORD
  472.         normalPaperMapping:        BOOLEAN;                                {  True if not overriding normal paper mapping  }
  473.         padByte:                SInt8;
  474.     END;
  475.  
  476.  
  477. { gxSpecialMappingTag COLLECTION ITEM }
  478.  
  479. CONST
  480.     gxSpecialMappingTag            = 'smap';
  481.  
  482.  
  483. TYPE
  484.     gxSpecialMappingInfoPtr = ^gxSpecialMappingInfo;
  485.     gxSpecialMappingInfo = RECORD
  486.         specialMapping:            SInt8;                                    {  Enumerated redirect, scale or tile setting  }
  487.         padByte:                SInt8;
  488.     END;
  489.  
  490. { specialMapping field constants }
  491.  
  492. CONST
  493.     gxRedirectPages                = 1;                            {  Redirect pages to a papertype and clip if necessary  }
  494.     gxScalePages                = 2;                            {  Scale pages if necessary  }
  495.     gxTilePages                    = 3;                            {  Tile pages if necessary  }
  496.  
  497.  
  498. { gxTrayMappingTag COLLECTION ITEM }
  499.     gxTrayMappingTag            = 'tmap';
  500.  
  501.  
  502. TYPE
  503.     gxTrayMappingInfoPtr = ^gxTrayMappingInfo;
  504.     gxTrayMappingInfo = RECORD
  505.         mapPaperToTray:            gxTrayIndex;                            {  Tray to map all paper to  }
  506.     END;
  507.  
  508.  
  509. { gxPaperMappingTag COLLECTION ITEM }
  510. { This collection item contains a flattened paper type resource }
  511.  
  512. CONST
  513.     gxPaperMappingTag            = 'pmap';
  514.  
  515.  
  516. { gxPrintPanelTag COLLECTION ITEM }
  517.     gxPrintPanelTag                = 'ppan';
  518.  
  519.  
  520. TYPE
  521.     gxPrintPanelInfoPtr = ^gxPrintPanelInfo;
  522.     gxPrintPanelInfo = RECORD
  523.         startPanelName:            Str31;                                    {  Name of starting panel in Print dialog  }
  524.     END;
  525.  
  526.  
  527. { gxFormatPanelTag COLLECTION ITEM }
  528.  
  529. CONST
  530.     gxFormatPanelTag            = 'fpan';
  531.  
  532.  
  533. TYPE
  534.     gxFormatPanelInfoPtr = ^gxFormatPanelInfo;
  535.     gxFormatPanelInfo = RECORD
  536.         startPanelName:            Str31;                                    {  Name of starting panel in Format dialog  }
  537.     END;
  538.  
  539.  
  540. { gxTranslatedDocumentTag COLLECTION ITEM }
  541.  
  542. CONST
  543.     gxTranslatedDocumentTag        = 'trns';
  544.  
  545.  
  546. TYPE
  547.     gxTranslatedDocumentInfoPtr = ^gxTranslatedDocumentInfo;
  548.     gxTranslatedDocumentInfo = RECORD
  549.         translatorInfo:            LONGINT;                                {  Information from the translation process  }
  550.     END;
  551.  
  552.  
  553. { gxCoverPageTag COLLECTION ITEM }
  554.  
  555. CONST
  556.     gxCoverPageTag                = 'cvpg';
  557.  
  558.  
  559.  
  560. TYPE
  561.     gxCoverPageInfoPtr = ^gxCoverPageInfo;
  562.     gxCoverPageInfo = RECORD
  563.         coverPage:                LONGINT;                                {  Use same enum values as for PrintRecord field in GXPrinterDrivers.h  }
  564.     END;
  565.  
  566. {
  567.  
  568.     >>>>>> FORMAT COLLECTION ITEMS <<<<<<
  569.  
  570. }
  571. { gxPaperTypeLockTag COLLECTION ITEM }
  572.  
  573. CONST
  574.     gxPaperTypeLockTag            = 'ptlk';
  575.  
  576.  
  577. TYPE
  578.     gxPaperTypeLockInfoPtr = ^gxPaperTypeLockInfo;
  579.     gxPaperTypeLockInfo = RECORD
  580.         paperTypeLocked:        BOOLEAN;                                {  True if format's paperType is locked  }
  581.         padByte:                SInt8;
  582.     END;
  583.  
  584.  
  585. { gxOrientationTag COLLECTION ITEM }
  586.  
  587. CONST
  588.     gxOrientationTag            = 'layo';
  589.  
  590.  
  591. TYPE
  592.     gxOrientationInfoPtr = ^gxOrientationInfo;
  593.     gxOrientationInfo = RECORD
  594.         orientation:            SInt8;                                    {  An enumerated orientation value  }
  595.         padByte:                SInt8;
  596.     END;
  597.  
  598. { orientation field constants }
  599.  
  600. CONST
  601.     gxPortraitLayout            = 0;                            {  Portrait  }
  602.     gxLandscapeLayout            = 1;                            {  Landscape  }
  603.     gxRotatedPortraitLayout        = 2;                            {  Portrait, rotated 180°  }
  604.     gxRotatedLandscapeLayout    = 3;                            {  Landscape, rotated 180°   }
  605.  
  606.  
  607. { gxScalingTag COLLECTION ITEM }
  608.     gxScalingTag                = 'scal';
  609.  
  610.  
  611. TYPE
  612.     gxScalingInfoPtr = ^gxScalingInfo;
  613.     gxScalingInfo = RECORD
  614.         horizontalScaleFactor:    Fixed;                                    {  Current horizontal scaling factor  }
  615.         verticalScaleFactor:    Fixed;                                    {  Current vertical scaling factor  }
  616.         minScaling:                INTEGER;                                {  Minimum scaling allowed  }
  617.         maxScaling:                INTEGER;                                {  Maximum scaling allowed  }
  618.     END;
  619.  
  620.  
  621. { gxDirectModeTag COLLECTION ITEM }
  622.  
  623. CONST
  624.     gxDirectModeTag                = 'dirm';
  625.  
  626.  
  627. TYPE
  628.     gxDirectModeInfoPtr = ^gxDirectModeInfo;
  629.     gxDirectModeInfo = RECORD
  630.         directModeOn:            BOOLEAN;                                {  True if a direct mode is enabled  }
  631.         padByte:                SInt8;
  632.     END;
  633.  
  634.  
  635. { gxFormatHalftoneTag COLLECTION ITEM }
  636.  
  637. CONST
  638.     gxFormatHalftoneTag            = 'half';
  639.  
  640.  
  641. TYPE
  642.     gxFormatHalftoneInfoPtr = ^gxFormatHalftoneInfo;
  643.     gxFormatHalftoneInfo = RECORD
  644.         numHalftones:            LONGINT;                                {  Number of halftone records  }
  645.         halftones:                ARRAY [0..0] OF gxHalftone;                {  The halftone records  }
  646.     END;
  647.  
  648.  
  649. { gxInvertPageTag COLLECTION ITEM }
  650.  
  651. CONST
  652.     gxInvertPageTag                = 'invp';
  653.  
  654.  
  655. TYPE
  656.     gxInvertPageInfoPtr = ^gxInvertPageInfo;
  657.     gxInvertPageInfo = RECORD
  658.         padByte:                SInt8;
  659.         invert:                    BOOLEAN;                                {  If true, invert page  }
  660.     END;
  661.  
  662.  
  663. { gxFlipPageHorizontalTag COLLECTION ITEM }
  664.  
  665. CONST
  666.     gxFlipPageHorizontalTag        = 'flph';
  667.  
  668.  
  669. TYPE
  670.     gxFlipPageHorizontalInfoPtr = ^gxFlipPageHorizontalInfo;
  671.     gxFlipPageHorizontalInfo = RECORD
  672.         padByte:                SInt8;
  673.         flipHorizontal:            BOOLEAN;                                {  If true, flip x coordinates on page  }
  674.     END;
  675.  
  676.  
  677. { gxFlipPageVerticalTag COLLECTION ITEM }
  678.  
  679. CONST
  680.     gxFlipPageVerticalTag        = 'flpv';
  681.  
  682.  
  683. TYPE
  684.     gxFlipPageVerticalInfoPtr = ^gxFlipPageVerticalInfo;
  685.     gxFlipPageVerticalInfo = RECORD
  686.         padByte:                SInt8;
  687.         flipVertical:            BOOLEAN;                                {  If true, flip y coordinates on page  }
  688.     END;
  689.  
  690.  
  691. { gxPreciseBitmapsTag COLLECTION ITEM }
  692.  
  693. CONST
  694.     gxPreciseBitmapsTag            = 'pbmp';
  695.  
  696.  
  697. TYPE
  698.     gxPreciseBitmapInfoPtr = ^gxPreciseBitmapInfo;
  699.     gxPreciseBitmapInfo = RECORD
  700.         preciseBitmaps:            BOOLEAN;                                {  If true, scale page by 96%  }
  701.         padByte:                SInt8;
  702.     END;
  703.  
  704.  
  705. {
  706.  
  707.     >>>>>> PAPERTYPE COLLECTION ITEMS <<<<<<
  708.  
  709. }
  710. { gxBaseTag COLLECTION ITEM }
  711.  
  712. CONST
  713.     gxBaseTag                    = 'base';
  714.  
  715.  
  716. TYPE
  717.     gxBaseInfoPtr = ^gxBaseInfo;
  718.     gxBaseInfo = RECORD
  719.         baseType:                LONGINT;                                {  PaperType's base type  }
  720.     END;
  721.  
  722. { baseType field constants }
  723.  
  724. CONST
  725.     gxUnknownBase                = 0;                            {  Base paper type from which this paper type is  }
  726.     gxUSLetterBase                = 1;                            {  derived.  This is not a complete set.  }
  727.     gxUSLegalBase                = 2;
  728.     gxA4LetterBase                = 3;
  729.     gxB5LetterBase                = 4;
  730.     gxTabloidBase                = 5;
  731.  
  732.  
  733. { gxCreatorTag COLLECTION ITEM }
  734.     gxCreatorTag                = 'crea';
  735.  
  736.  
  737. TYPE
  738.     gxCreatorInfoPtr = ^gxCreatorInfo;
  739.     gxCreatorInfo = RECORD
  740.         creator:                OSType;                                    {  PaperType's creator  }
  741.     END;
  742.  
  743. { gxUnitsTag COLLECTION ITEM }
  744.  
  745. CONST
  746.     gxUnitsTag                    = 'unit';
  747.  
  748.  
  749. TYPE
  750.     gxUnitsInfoPtr = ^gxUnitsInfo;
  751.     gxUnitsInfo = RECORD
  752.         units:                    SInt8;                                    {  PaperType's units (used by PaperType Editor).  }
  753.         padByte:                SInt8;
  754.     END;
  755.  
  756. { units field constants }
  757.  
  758. CONST
  759.     gxPicas                        = 0;                            {  Pica measurement  }
  760.     gxMMs                        = 1;                            {  Millimeter measurement  }
  761.     gxInches                    = 2;                            {  Inches measurement  }
  762.  
  763.  
  764. { gxFlagsTag COLLECTION ITEM }
  765.     gxFlagsTag                    = 'flag';
  766.  
  767.  
  768. TYPE
  769.     gxFlagsInfoPtr = ^gxFlagsInfo;
  770.     gxFlagsInfo = RECORD
  771.         flags:                    LONGINT;                                {  PaperType's flags  }
  772.     END;
  773.  
  774. { flags field constants }
  775.  
  776. CONST
  777.     gxOldPaperTypeFlag            = $00800000;                    {  Indicates a paper type for compatibility printing  }
  778.     gxNewPaperTypeFlag            = $00400000;                    {  Indicates a paper type for QuickDraw GX-aware printing  }
  779.     gxOldAndNewFlag                = $00C00000;                    {  Indicates a paper type that's both old and new  }
  780.     gxDefaultPaperTypeFlag        = $00100000;                    {  Indicates the default paper type in the group  }
  781.  
  782.  
  783. { gxCommentTag COLLECTION ITEM }
  784.     gxCommentTag                = 'cmnt';
  785.  
  786.  
  787. TYPE
  788.     gxCommentInfoPtr = ^gxCommentInfo;
  789.     gxCommentInfo = RECORD
  790.         comment:                Str255;                                    {  PaperType's comment  }
  791.     END;
  792.  
  793.  
  794. {
  795.  
  796.     >>>>>> PRINTER VIEWDEVICE TAGS <<<<<<
  797.  
  798. }
  799. { gxPenTableTag COLLECTION ITEM }
  800.  
  801. CONST
  802.     gxPenTableTag                = 'pent';
  803.  
  804.  
  805. TYPE
  806.     gxPenTableEntryPtr = ^gxPenTableEntry;
  807.     gxPenTableEntry = RECORD
  808.         penName:                Str31;                                    {  Name of the pen  }
  809.         penColor:                gxColor;                                {  Color to use from the color set  }
  810.         penThickness:            Fixed;                                    {  Size of the pen  }
  811.         penUnits:                INTEGER;                                {  Specifies units in which pen thickness is defined  }
  812.         penPosition:            INTEGER;                                {  Pen position in the carousel, -1 (kPenNotLoaded) if not loaded  }
  813.     END;
  814.  
  815.     gxPenTablePtr = ^gxPenTable;
  816.     gxPenTable = RECORD
  817.         numPens:                LONGINT;                                {  Number of pen entries in the following array  }
  818.         pens:                    ARRAY [0..0] OF gxPenTableEntry;        {  Array of pen entries  }
  819.     END;
  820.  
  821.     gxPenTableHdl                        = ^gxPenTablePtr;
  822. { penUnits field constants }
  823.  
  824. CONST
  825.     gxDeviceUnits                = 0;
  826.     gxMMUnits                    = 1;
  827.     gxInchesUnits                = 2;
  828.  
  829. { penPosition field constants }
  830.     gxPenNotLoaded                = -1;
  831.  
  832.  
  833. {
  834.  
  835.     >>>>>> DIALOG-RELATED CONSTANTS AND TYPES <<<<<<
  836.  
  837. }
  838.  
  839. TYPE
  840.     gxDialogResult                        = LONGINT;
  841.  
  842. CONST
  843.     gxCancelSelected            = 0;
  844.     gxOKSelected                = 1;
  845.     gxRevertSelected            = 2;
  846.  
  847.  
  848.  
  849. TYPE
  850.     gxEditMenuRecordPtr = ^gxEditMenuRecord;
  851.     gxEditMenuRecord = RECORD
  852.         editMenuID:                INTEGER;
  853.         cutItem:                INTEGER;
  854.         copyItem:                INTEGER;
  855.         pasteItem:                INTEGER;
  856.         clearItem:                INTEGER;
  857.         undoItem:                INTEGER;
  858.     END;
  859.  
  860.  
  861. {
  862.  
  863.     >>>>>> JOB FORMAT MODE CONSTANTS AND TYPES <<<<<<
  864.  
  865. }
  866.     gxJobFormatMode                        = OSType;
  867.     gxJobFormatModeTablePtr = ^gxJobFormatModeTable;
  868.     gxJobFormatModeTable = RECORD
  869.         numModes:                LONGINT;                                {  Number of job format modes to choose from  }
  870.         modes:                    ARRAY [0..0] OF gxJobFormatMode;        {  The job format modes  }
  871.     END;
  872.  
  873.     gxJobFormatModeTableHdl                = ^gxJobFormatModeTablePtr;
  874.  
  875. CONST
  876.     gxGraphicsJobFormatMode        = 'grph';
  877.     gxTextJobFormatMode            = 'text';
  878.     gxPostScriptJobFormatMode    = 'post';
  879.  
  880.  
  881. TYPE
  882.     gxQueryType                            = LONGINT;
  883.  
  884. CONST
  885.     gxGetJobFormatLineConstraintQuery = 0;
  886.     gxGetJobFormatFontsQuery    = 1;
  887.     gxGetJobFormatFontCommonStylesQuery = 2;
  888.     gxGetJobFormatFontConstraintQuery = 3;
  889.     gxSetStyleJobFormatCommonStyleQuery = 4;
  890.  
  891.  
  892. { Structures used for Text mode field constants }
  893.  
  894. TYPE
  895.     gxPositionConstraintTablePtr = ^gxPositionConstraintTable;
  896.     gxPositionConstraintTable = RECORD
  897.         phase:                    gxPoint;                                {  Position phase  }
  898.         offset:                    gxPoint;                                {  Position offset  }
  899.         numSizes:                LONGINT;                                {  Number of available font sizes  }
  900.         sizes:                    ARRAY [0..0] OF Fixed;                    {  The available font sizes  }
  901.     END;
  902.  
  903.     gxPositionConstraintTableHdl        = ^gxPositionConstraintTablePtr;
  904. { numSizes field constants }
  905.  
  906. CONST
  907.     gxConstraintRange            = -1;
  908.  
  909.  
  910. TYPE
  911.     gxStyleNameTablePtr = ^gxStyleNameTable;
  912.     gxStyleNameTable = RECORD
  913.         numStyleNames:            LONGINT;                                {  Number of style names  }
  914.         styleNames:                ARRAY [0..0] OF Str255;                    {  The style names  }
  915.     END;
  916.  
  917.     gxStyleNameTableHdl                    = ^gxStyleNameTablePtr;
  918.     gxFontTablePtr = ^gxFontTable;
  919.     gxFontTable = RECORD
  920.         numFonts:                LONGINT;                                {  Number of font references  }
  921.         fonts:                    ARRAY [0..0] OF gxFont;                    {  The font references  }
  922.     END;
  923.  
  924.     gxFontTableHdl                        = ^gxFontTablePtr;
  925. { ------------------------------------------------------------------------------
  926.  
  927.                                 Printing Manager API Functions
  928.  
  929. -------------------------------------------------------------------------------- }
  930. {
  931.     Global Routines
  932. }
  933. FUNCTION GXInitPrinting: OSErr;
  934.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  935.     INLINE $203C, $0000, $0000, $ABFE;
  936.     {$ENDC}
  937. FUNCTION GXExitPrinting: OSErr;
  938.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  939.     INLINE $203C, $0000, $0001, $ABFE;
  940.     {$ENDC}
  941.  
  942. {
  943.     Error-Handling Routines
  944. }
  945. FUNCTION GXGetJobError(aJob: gxJob): OSErr;
  946.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  947.     INLINE $203C, $0000, $000E, $ABFE;
  948.     {$ENDC}
  949. PROCEDURE GXSetJobError(aJob: gxJob; anErr: OSErr);
  950.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  951.     INLINE $203C, $0000, $000F, $ABFE;
  952.     {$ENDC}
  953.  
  954. {
  955.     Job Routines
  956. }
  957. FUNCTION GXNewJob(VAR aJob: gxJob): OSErr;
  958.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  959.     INLINE $203C, $0000, $0002, $ABFE;
  960.     {$ENDC}
  961. FUNCTION GXDisposeJob(aJob: gxJob): OSErr;
  962.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  963.     INLINE $203C, $0000, $0003, $ABFE;
  964.     {$ENDC}
  965. PROCEDURE GXFlattenJob(aJob: gxJob; flattenProc: GXPrintingFlattenUPP; aVoid: UNIV Ptr);
  966.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  967.     INLINE $203C, $0000, $0004, $ABFE;
  968.     {$ENDC}
  969. FUNCTION GXUnflattenJob(aJob: gxJob; flattenProc: GXPrintingFlattenUPP; aVoid: UNIV Ptr): gxJob;
  970.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  971.     INLINE $203C, $0000, $0005, $ABFE;
  972.     {$ENDC}
  973. FUNCTION GXFlattenJobToHdl(aJob: gxJob; aHdl: Handle): Handle;
  974.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  975.     INLINE $203C, $0000, $0006, $ABFE;
  976.     {$ENDC}
  977. FUNCTION GXUnflattenJobFromHdl(aJob: gxJob; aHdl: Handle): gxJob;
  978.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  979.     INLINE $203C, $0000, $0007, $ABFE;
  980.     {$ENDC}
  981. PROCEDURE GXInstallApplicationOverride(aJob: gxJob; messageID: INTEGER; override: UNIV Ptr);
  982.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  983.     INLINE $203C, $0000, $0008, $ABFE;
  984.     {$ENDC}
  985. FUNCTION GXGetJobCollection(aJob: gxJob): Collection;
  986.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  987.     INLINE $203C, $0000, $001D, $ABFE;
  988.     {$ENDC}
  989. FUNCTION GXGetJobRefCon(aJob: gxJob): Ptr;
  990.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  991.     INLINE $203C, $0000, $001E, $ABFE;
  992.     {$ENDC}
  993. PROCEDURE GXSetJobRefCon(aJob: gxJob; refCon: UNIV Ptr);
  994.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  995.     INLINE $203C, $0000, $001F, $ABFE;
  996.     {$ENDC}
  997. FUNCTION GXCopyJob(srcJob: gxJob; dstJob: gxJob): gxJob;
  998.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  999.     INLINE $203C, $0000, $0020, $ABFE;
  1000.     {$ENDC}
  1001. PROCEDURE GXSelectJobFormattingPrinter(aJob: gxJob; VAR printerName: Str31);
  1002.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1003.     INLINE $203C, $0000, $0021, $ABFE;
  1004.     {$ENDC}
  1005. PROCEDURE GXSelectJobOutputPrinter(aJob: gxJob; VAR printerName: Str31);
  1006.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1007.     INLINE $203C, $0000, $0022, $ABFE;
  1008.     {$ENDC}
  1009. PROCEDURE GXForEachJobFormatDo(aJob: gxJob; formatProc: GXFormatUPP; refCon: UNIV Ptr);
  1010.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1011.     INLINE $203C, $0000, $0023, $ABFE;
  1012.     {$ENDC}
  1013. FUNCTION GXCountJobFormats(aJob: gxJob): LONGINT;
  1014.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1015.     INLINE $203C, $0000, $0024, $ABFE;
  1016.     {$ENDC}
  1017. FUNCTION GXUpdateJob(aJob: gxJob): BOOLEAN;
  1018.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1019.     INLINE $203C, $0000, $0025, $ABFE;
  1020.     {$ENDC}
  1021. PROCEDURE GXConvertPrintRecord(aJob: gxJob; hPrint: THPrint);
  1022.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1023.     INLINE $203C, $0000, $0026, $ABFE;
  1024.     {$ENDC}
  1025. PROCEDURE GXIdleJob(aJob: gxJob);
  1026.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1027.     INLINE $203C, $0000, $0057, $ABFE;
  1028.     {$ENDC}
  1029.  
  1030. {
  1031.     Job Format Modes Routines
  1032. }
  1033. PROCEDURE GXSetAvailableJobFormatModes(aJob: gxJob; formatModeTable: gxJobFormatModeTableHdl);
  1034.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1035.     INLINE $203C, $0000, $003B, $ABFE;
  1036.     {$ENDC}
  1037. FUNCTION GXGetPreferredJobFormatMode(aJob: gxJob; VAR directOnly: BOOLEAN): LONGINT;
  1038.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1039.     INLINE $203C, $0000, $003C, $ABFE;
  1040.     {$ENDC}
  1041. FUNCTION GXGetJobFormatMode(aJob: gxJob): LONGINT;
  1042.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1043.     INLINE $203C, $0000, $003D, $ABFE;
  1044.     {$ENDC}
  1045. PROCEDURE GXSetJobFormatMode(aJob: gxJob; formatMode: gxJobFormatMode);
  1046.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1047.     INLINE $203C, $0000, $003E, $ABFE;
  1048.     {$ENDC}
  1049. PROCEDURE GXJobFormatModeQuery(aJob: gxJob; aQueryType: gxQueryType; srcData: UNIV Ptr; dstData: UNIV Ptr);
  1050.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1051.     INLINE $203C, $0000, $003F, $ABFE;
  1052.     {$ENDC}
  1053.  
  1054. {
  1055.     Format Routines
  1056. }
  1057. FUNCTION GXNewFormat(aJob: gxJob): gxFormat;
  1058.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1059.     INLINE $203C, $0000, $0009, $ABFE;
  1060.     {$ENDC}
  1061. PROCEDURE GXDisposeFormat(aFormat: gxFormat);
  1062.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1063.     INLINE $203C, $0000, $000A, $ABFE;
  1064.     {$ENDC}
  1065. FUNCTION GXGetJobFormat(aJob: gxJob; whichFormat: LONGINT): gxFormat;
  1066.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1067.     INLINE $203C, $0000, $0013, $ABFE;
  1068.     {$ENDC}
  1069. FUNCTION GXGetFormatJob(aFormat: gxFormat): gxJob;
  1070.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1071.     INLINE $203C, $0000, $0014, $ABFE;
  1072.     {$ENDC}
  1073. FUNCTION GXGetFormatPaperType(aFormat: gxFormat): gxPaperType;
  1074.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1075.     INLINE $203C, $0000, $0015, $ABFE;
  1076.     {$ENDC}
  1077. PROCEDURE GXGetFormatDimensions(aFormat: gxFormat; VAR pageSize: gxRectangle; VAR paperSize: gxRectangle);
  1078.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1079.     INLINE $203C, $0000, $0016, $ABFE;
  1080.     {$ENDC}
  1081. FUNCTION GXGetFormatCollection(aFormat: gxFormat): Collection;
  1082.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1083.     INLINE $203C, $0000, $0033, $ABFE;
  1084.     {$ENDC}
  1085. PROCEDURE GXChangedFormat(aFormat: gxFormat);
  1086.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1087.     INLINE $203C, $0000, $0034, $ABFE;
  1088.     {$ENDC}
  1089. FUNCTION GXCopyFormat(srcFormat: gxFormat; dstFormat: gxFormat): gxFormat;
  1090.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1091.     INLINE $203C, $0000, $0035, $ABFE;
  1092.     {$ENDC}
  1093. FUNCTION GXCloneFormat(aFormat: gxFormat): gxFormat;
  1094.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1095.     INLINE $203C, $0000, $0036, $ABFE;
  1096.     {$ENDC}
  1097. FUNCTION GXCountFormatOwners(aFormat: gxFormat): LONGINT;
  1098.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1099.     INLINE $203C, $0000, $0037, $ABFE;
  1100.     {$ENDC}
  1101. PROCEDURE GXGetFormatMapping(aFormat: gxFormat; VAR fmtMapping: gxMapping);
  1102.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1103.     INLINE $203C, $0000, $0038, $ABFE;
  1104.     {$ENDC}
  1105. FUNCTION GXGetFormatForm(aFormat: gxFormat; VAR mask: gxShape): gxShape;
  1106.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1107.     INLINE $203C, $0000, $0039, $ABFE;
  1108.     {$ENDC}
  1109. PROCEDURE GXSetFormatForm(aFormat: gxFormat; form: gxShape; mask: gxShape);
  1110.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1111.     INLINE $203C, $0000, $003A, $ABFE;
  1112.     {$ENDC}
  1113.  
  1114. {
  1115.     PaperType Routines
  1116. }
  1117. FUNCTION GXNewPaperType(aJob: gxJob; VAR name: Str31; VAR pageSize: gxRectangle; VAR paperSize: gxRectangle): gxPaperType;
  1118.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1119.     INLINE $203C, $0000, $000B, $ABFE;
  1120.     {$ENDC}
  1121. PROCEDURE GXDisposePaperType(aPaperType: gxPaperType);
  1122.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1123.     INLINE $203C, $0000, $000C, $ABFE;
  1124.     {$ENDC}
  1125. FUNCTION GXGetNewPaperType(aJob: gxJob; resID: INTEGER): gxPaperType;
  1126.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1127.     INLINE $203C, $0000, $000D, $ABFE;
  1128.     {$ENDC}
  1129. FUNCTION GXCountJobPaperTypes(aJob: gxJob; forFormatDevice: BOOLEAN): LONGINT;
  1130.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1131.     INLINE $203C, $0000, $0042, $ABFE;
  1132.     {$ENDC}
  1133. FUNCTION GXGetJobPaperType(aJob: gxJob; whichPaperType: LONGINT; forFormatDevice: BOOLEAN; aPaperType: gxPaperType): gxPaperType;
  1134.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1135.     INLINE $203C, $0000, $0043, $ABFE;
  1136.     {$ENDC}
  1137. PROCEDURE GXForEachJobPaperTypeDo(aJob: gxJob; aProc: GXPaperTypeUPP; refCon: UNIV Ptr; forFormattingPrinter: BOOLEAN);
  1138.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1139.     INLINE $203C, $0000, $0044, $ABFE;
  1140.     {$ENDC}
  1141. FUNCTION GXCopyPaperType(srcPaperType: gxPaperType; dstPaperType: gxPaperType): gxPaperType;
  1142.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1143.     INLINE $203C, $0000, $0045, $ABFE;
  1144.     {$ENDC}
  1145. PROCEDURE GXGetPaperTypeName(aPaperType: gxPaperType; VAR papertypeName: Str31);
  1146.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1147.     INLINE $203C, $0000, $0046, $ABFE;
  1148.     {$ENDC}
  1149. PROCEDURE GXGetPaperTypeDimensions(aPaperType: gxPaperType; VAR pageSize: gxRectangle; VAR paperSize: gxRectangle);
  1150.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1151.     INLINE $203C, $0000, $0047, $ABFE;
  1152.     {$ENDC}
  1153. FUNCTION GXGetPaperTypeJob(aPaperType: gxPaperType): gxJob;
  1154.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1155.     INLINE $203C, $0000, $0048, $ABFE;
  1156.     {$ENDC}
  1157. FUNCTION GXGetPaperTypeCollection(aPaperType: gxPaperType): Collection;
  1158.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1159.     INLINE $203C, $0000, $0049, $ABFE;
  1160.     {$ENDC}
  1161.  
  1162. {
  1163.     Printer Routines
  1164. }
  1165. FUNCTION GXGetJobFormattingPrinter(aJob: gxJob): gxPrinter;
  1166.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1167.     INLINE $203C, $0000, $0027, $ABFE;
  1168.     {$ENDC}
  1169. FUNCTION GXGetJobOutputPrinter(aJob: gxJob): gxPrinter;
  1170.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1171.     INLINE $203C, $0000, $0028, $ABFE;
  1172.     {$ENDC}
  1173. FUNCTION GXGetJobPrinter(aJob: gxJob): gxPrinter;
  1174.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1175.     INLINE $203C, $0000, $0029, $ABFE;
  1176.     {$ENDC}
  1177. FUNCTION GXGetPrinterJob(aPrinter: gxPrinter): gxJob;
  1178.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1179.     INLINE $203C, $0000, $002A, $ABFE;
  1180.     {$ENDC}
  1181. PROCEDURE GXForEachPrinterViewDeviceDo(aPrinter: gxPrinter; aProc: GXViewDeviceUPP; refCon: UNIV Ptr);
  1182.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1183.     INLINE $203C, $0000, $002B, $ABFE;
  1184.     {$ENDC}
  1185. FUNCTION GXCountPrinterViewDevices(aPrinter: gxPrinter): LONGINT;
  1186.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1187.     INLINE $203C, $0000, $002C, $ABFE;
  1188.     {$ENDC}
  1189. FUNCTION GXGetPrinterViewDevice(aPrinter: gxPrinter; whichViewDevice: LONGINT): gxViewDevice;
  1190.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1191.     INLINE $203C, $0000, $002D, $ABFE;
  1192.     {$ENDC}
  1193. PROCEDURE GXSelectPrinterViewDevice(aPrinter: gxPrinter; whichViewDevice: LONGINT);
  1194.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1195.     INLINE $203C, $0000, $002E, $ABFE;
  1196.     {$ENDC}
  1197. PROCEDURE GXGetPrinterName(aPrinter: gxPrinter; VAR printerName: Str31);
  1198.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1199.     INLINE $203C, $0000, $002F, $ABFE;
  1200.     {$ENDC}
  1201. FUNCTION GXGetPrinterType(aPrinter: gxPrinter): LONGINT;
  1202.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1203.     INLINE $203C, $0000, $0030, $ABFE;
  1204.     {$ENDC}
  1205. PROCEDURE GXGetPrinterDriverName(aPrinter: gxPrinter; VAR driverName: Str31);
  1206.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1207.     INLINE $203C, $0000, $0031, $ABFE;
  1208.     {$ENDC}
  1209. FUNCTION GXGetPrinterDriverType(aPrinter: gxPrinter): LONGINT;
  1210.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1211.     INLINE $203C, $0000, $0032, $ABFE;
  1212.     {$ENDC}
  1213.  
  1214. {
  1215.     Dialog Routines
  1216. }
  1217. FUNCTION GXJobDefaultFormatDialog(aJob: gxJob; VAR anEditMenuRec: gxEditMenuRecord): gxDialogResult;
  1218.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1219.     INLINE $203C, $0000, $0010, $ABFE;
  1220.     {$ENDC}
  1221. FUNCTION GXJobPrintDialog(aJob: gxJob; VAR anEditMenuRec: gxEditMenuRecord): gxDialogResult;
  1222.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1223.     INLINE $203C, $0000, $0011, $ABFE;
  1224.     {$ENDC}
  1225. FUNCTION GXFormatDialog(aFormat: gxFormat; VAR anEditMenuRec: gxEditMenuRecord; title: StringPtr): gxDialogResult;
  1226.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1227.     INLINE $203C, $0000, $0012, $ABFE;
  1228.     {$ENDC}
  1229. PROCEDURE GXEnableJobScalingPanel(aJob: gxJob; enabled: BOOLEAN);
  1230.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1231.     INLINE $203C, $0000, $0040, $ABFE;
  1232.     {$ENDC}
  1233. PROCEDURE GXGetJobPanelDimensions(aJob: gxJob; VAR panelArea: Rect);
  1234.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1235.     INLINE $203C, $0000, $0041, $ABFE;
  1236.     {$ENDC}
  1237.  
  1238. {
  1239.     Spooling Routines
  1240. }
  1241. PROCEDURE GXGetJobPageRange(theJob: gxJob; VAR firstPage: LONGINT; VAR lastPage: LONGINT);
  1242.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1243.     INLINE $203C, $0000, $0017, $ABFE;
  1244.     {$ENDC}
  1245. PROCEDURE GXStartJob(theJob: gxJob; docName: StringPtr; pageCount: LONGINT);
  1246.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1247.     INLINE $203C, $0000, $0018, $ABFE;
  1248.     {$ENDC}
  1249. PROCEDURE GXPrintPage(theJob: gxJob; pageNumber: LONGINT; theFormat: gxFormat; thePage: gxShape);
  1250.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1251.     INLINE $203C, $0000, $0019, $ABFE;
  1252.     {$ENDC}
  1253. FUNCTION GXStartPage(theJob: gxJob; pageNumber: LONGINT; theFormat: gxFormat; numViewPorts: LONGINT; VAR viewPortList: gxViewPort): BOOLEAN;
  1254.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1255.     INLINE $203C, $0000, $001A, $ABFE;
  1256.     {$ENDC}
  1257. PROCEDURE GXFinishPage(theJob: gxJob);
  1258.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1259.     INLINE $203C, $0000, $001B, $ABFE;
  1260.     {$ENDC}
  1261. PROCEDURE GXFinishJob(theJob: gxJob);
  1262.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1263.     INLINE $203C, $0000, $001C, $ABFE;
  1264.     {$ENDC}
  1265.  
  1266. {
  1267.     PrintFile Routines
  1268. }
  1269. FUNCTION GXOpenPrintFile(theJob: gxJob; anFSSpec: FSSpecPtr; permission: ByteParameter): gxPrintFile;
  1270.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1271.     INLINE $203C, $0000, $004A, $ABFE;
  1272.     {$ENDC}
  1273. PROCEDURE GXClosePrintFile(aPrintFile: gxPrintFile);
  1274.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1275.     INLINE $203C, $0000, $004B, $ABFE;
  1276.     {$ENDC}
  1277. FUNCTION GXGetPrintFileJob(aPrintFile: gxPrintFile): gxJob;
  1278.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1279.     INLINE $203C, $0000, $004C, $ABFE;
  1280.     {$ENDC}
  1281. FUNCTION GXCountPrintFilePages(aPrintFile: gxPrintFile): LONGINT;
  1282.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1283.     INLINE $203C, $0000, $004D, $ABFE;
  1284.     {$ENDC}
  1285. PROCEDURE GXReadPrintFilePage(aPrintFile: gxPrintFile; pageNumber: LONGINT; numViewPorts: LONGINT; VAR viewPortList: gxViewPort; VAR pgFormat: gxFormat; VAR pgShape: gxShape);
  1286.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1287.     INLINE $203C, $0000, $004E, $ABFE;
  1288.     {$ENDC}
  1289. PROCEDURE GXReplacePrintFilePage(aPrintFile: gxPrintFile; pageNumber: LONGINT; aFormat: gxFormat; aShape: gxShape);
  1290.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1291.     INLINE $203C, $0000, $004F, $ABFE;
  1292.     {$ENDC}
  1293. PROCEDURE GXInsertPrintFilePage(aPrintFile: gxPrintFile; atPageNumber: LONGINT; pgFormat: gxFormat; pgShape: gxShape);
  1294.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1295.     INLINE $203C, $0000, $0050, $ABFE;
  1296.     {$ENDC}
  1297. PROCEDURE GXDeletePrintFilePageRange(aPrintFile: gxPrintFile; fromPageNumber: LONGINT; toPageNumber: LONGINT);
  1298.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1299.     INLINE $203C, $0000, $0051, $ABFE;
  1300.     {$ENDC}
  1301. PROCEDURE GXSavePrintFile(aPrintFile: gxPrintFile; VAR anFSSpec: FSSpec);
  1302.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1303.     INLINE $203C, $0000, $0052, $ABFE;
  1304.     {$ENDC}
  1305.  
  1306. {
  1307.     ColorSync Routines
  1308. }
  1309. FUNCTION GXFindPrinterProfile(aPrinter: gxPrinter; searchData: UNIV Ptr; index: LONGINT; VAR returnedProfile: gxColorProfile): LONGINT;
  1310.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1311.     INLINE $203C, $0000, $0053, $ABFE;
  1312.     {$ENDC}
  1313. FUNCTION GXFindFormatProfile(aFormat: gxFormat; searchData: UNIV Ptr; index: LONGINT; VAR returnedProfile: gxColorProfile): LONGINT;
  1314.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1315.     INLINE $203C, $0000, $0054, $ABFE;
  1316.     {$ENDC}
  1317. PROCEDURE GXSetPrinterProfile(aPrinter: gxPrinter; oldProfile: gxColorProfile; newProfile: gxColorProfile);
  1318.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1319.     INLINE $203C, $0000, $0055, $ABFE;
  1320.     {$ENDC}
  1321. PROCEDURE GXSetFormatProfile(aFormat: gxFormat; oldProfile: gxColorProfile; newProfile: gxColorProfile);
  1322.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  1323.     INLINE $203C, $0000, $0056, $ABFE;
  1324.     {$ENDC}
  1325.  
  1326. {***********************************************************************
  1327.                         Start of old "GXPrintingResEquates.h/a/p" interface file.
  1328.                 ************************************************************************}
  1329. {    ------------------------------------
  1330.                 Basic client types
  1331.     ------------------------------------ }
  1332.  
  1333. CONST
  1334.     gxPrintingManagerType        = 'pmgr';
  1335.     gxImagingSystemType            = 'gxis';
  1336.     gxPrinterDriverType            = 'pdvr';
  1337.     gxPrintingExtensionType        = 'pext';
  1338.     gxUnknownPrinterType        = 'none';
  1339.     gxAnyPrinterType            = 'univ';
  1340.     gxQuickdrawPrinterType        = 'qdrw';
  1341.     gxPortableDocPrinterType    = 'gxpd';
  1342.     gxRasterPrinterType            = 'rast';
  1343.     gxPostscriptPrinterType        = 'post';
  1344.     gxVectorPrinterType            = 'vect';
  1345.  
  1346. { All pre-defined printing collection items have this ID }
  1347.     gxPrintingTagID                = -28672;
  1348.  
  1349.  
  1350. {    ----------------------------------------------------------------------
  1351.  
  1352.         Resource types and IDs used by both extension and driver writers
  1353.  
  1354.     ---------------------------------------------------------------------- }
  1355. { Resources in a printer driver or extension must be based off of these IDs }
  1356.     gxPrintingDriverBaseID        = -27648;
  1357.     gxPrintingExtensionBaseID    = -27136;
  1358.  
  1359. {    Override resources tell the system what messages a driver or extension
  1360.         is overriding.  A driver may have a series of these resources. }
  1361. {  Override resource type for 68k resource-based code: }
  1362.  
  1363.     gxOverrideType                = 'over';
  1364.  
  1365.  
  1366. {  Override resource type for PowerPC datafork-based code: }
  1367.  
  1368.     gxNativeOverrideType        = 'povr';
  1369.  
  1370.  
  1371. {    --------------------------------------------------------------
  1372.  
  1373.         Message ID definitions by both extension and driver writers
  1374.  
  1375.     --------------------------------------------------------------- }
  1376. { Identifiers for universal message overrides. }
  1377.     gxInitializeMsg                = 0;
  1378.     gxShutDownMsg                = 1;
  1379.     gxJobIdleMsg                = 2;
  1380.     gxJobStatusMsg                = 3;
  1381.     gxPrintingEventMsg            = 4;
  1382.     gxJobDefaultFormatDialogMsg    = 5;
  1383.     gxFormatDialogMsg            = 6;
  1384.     gxJobPrintDialogMsg            = 7;
  1385.     gxFilterPanelEventMsg        = 8;
  1386.     gxHandlePanelEventMsg        = 9;
  1387.     gxParsePageRangeMsg            = 10;
  1388.     gxDefaultJobMsg                = 11;
  1389.     gxDefaultFormatMsg            = 12;
  1390.     gxDefaultPaperTypeMsg        = 13;
  1391.     gxDefaultPrinterMsg            = 14;
  1392.     gxCreateSpoolFileMsg        = 15;
  1393.     gxSpoolPageMsg                = 16;
  1394.     gxSpoolDataMsg                = 17;
  1395.     gxSpoolResourceMsg            = 18;
  1396.     gxCompleteSpoolFileMsg        = 19;
  1397.     gxCountPagesMsg                = 20;
  1398.     gxDespoolPageMsg            = 21;
  1399.     gxDespoolDataMsg            = 22;
  1400.     gxDespoolResourceMsg        = 23;
  1401.     gxCloseSpoolFileMsg            = 24;
  1402.     gxStartJobMsg                = 25;
  1403.     gxFinishJobMsg                = 26;
  1404.     gxStartPageMsg                = 27;
  1405.     gxFinishPageMsg                = 28;
  1406.     gxPrintPageMsg                = 29;
  1407.     gxSetupImageDataMsg            = 30;
  1408.     gxImageJobMsg                = 31;
  1409.     gxImageDocumentMsg            = 32;
  1410.     gxImagePageMsg                = 33;
  1411.     gxRenderPageMsg                = 34;
  1412.     gxCreateImageFileMsg        = 35;
  1413.     gxOpenConnectionMsg            = 36;
  1414.     gxCloseConnectionMsg        = 37;
  1415.     gxStartSendPageMsg            = 38;
  1416.     gxFinishSendPageMsg            = 39;
  1417.     gxWriteDataMsg                = 40;
  1418.     gxBufferDataMsg                = 41;
  1419.     gxDumpBufferMsg                = 42;
  1420.     gxFreeBufferMsg                = 43;
  1421.     gxCheckStatusMsg            = 44;
  1422.     gxGetDeviceStatusMsg        = 45;
  1423.     gxFetchTaggedDataMsg        = 46;
  1424.     gxGetDTPMenuListMsg            = 47;
  1425.     gxDTPMenuSelectMsg            = 48;
  1426.     gxHandleAlertFilterMsg        = 49;
  1427.     gxJobFormatModeQueryMsg        = 50;
  1428.     gxWriteStatusToDTPWindowMsg    = 51;
  1429.     gxInitializeStatusAlertMsg    = 52;
  1430.     gxHandleAlertStatusMsg        = 53;
  1431.     gxHandleAlertEventMsg        = 54;
  1432.     gxCleanupStartJobMsg        = 55;
  1433.     gxCleanupStartPageMsg        = 56;
  1434.     gxCleanupOpenConnectionMsg    = 57;
  1435.     gxCleanupStartSendPageMsg    = 58;
  1436.     gxDefaultDesktopPrinterMsg    = 59;
  1437.     gxCaptureOutputDeviceMsg    = 60;
  1438.     gxOpenConnectionRetryMsg    = 61;
  1439.     gxExamineSpoolFileMsg        = 62;
  1440.     gxFinishSendPlaneMsg        = 63;
  1441.     gxDoesPaperFitMsg            = 64;
  1442.     gxChooserMessageMsg            = 65;
  1443.     gxFindPrinterProfileMsg        = 66;
  1444.     gxFindFormatProfileMsg        = 67;
  1445.     gxSetPrinterProfileMsg        = 68;
  1446.     gxSetFormatProfileMsg        = 69;
  1447.     gxHandleAltDestinationMsg    = 70;
  1448.     gxSetupPageImageDataMsg        = 71;
  1449.  
  1450.  
  1451. { Identifiers for Quickdraw message overrides. }
  1452.     gxPrOpenDocMsg                = 0;
  1453.     gxPrCloseDocMsg                = 1;
  1454.     gxPrOpenPageMsg                = 2;
  1455.     gxPrClosePageMsg            = 3;
  1456.     gxPrintDefaultMsg            = 4;
  1457.     gxPrStlDialogMsg            = 5;
  1458.     gxPrJobDialogMsg            = 6;
  1459.     gxPrStlInitMsg                = 7;
  1460.     gxPrJobInitMsg                = 8;
  1461.     gxPrDlgMainMsg                = 9;
  1462.     gxPrValidateMsg                = 10;
  1463.     gxPrJobMergeMsg                = 11;
  1464.     gxPrGeneralMsg                = 12;
  1465.     gxConvertPrintRecordToMsg    = 13;
  1466.     gxConvertPrintRecordFromMsg    = 14;
  1467.     gxPrintRecordToJobMsg        = 15;
  1468.  
  1469.  
  1470. { Identifiers for raster imaging message overrides. }
  1471.     gxRasterDataInMsg            = 0;
  1472.     gxRasterLineFeedMsg            = 1;
  1473.     gxRasterPackageBitmapMsg    = 2;
  1474.  
  1475.  
  1476. { Identifiers for PostScript imaging message overrides. }
  1477.     gxPostscriptQueryPrinterMsg    = 0;
  1478.     gxPostscriptInitializePrinterMsg = 1;
  1479.     gxPostscriptResetPrinterMsg    = 2;
  1480.     gxPostscriptExitServerMsg    = 3;
  1481.     gxPostscriptGetStatusTextMsg = 4;
  1482.     gxPostscriptGetPrinterTextMsg = 5;
  1483.     gxPostscriptScanStatusTextMsg = 6;
  1484.     gxPostscriptScanPrinterTextMsg = 7;
  1485.     gxPostscriptGetDocumentProcSetListMsg = 8;
  1486.     gxPostscriptDownloadProcSetListMsg = 9;
  1487.     gxPostscriptGetPrinterGlyphsInformationMsg = 10;
  1488.     gxPostscriptStreamFontMsg    = 11;
  1489.     gxPostscriptDoDocumentHeaderMsg = 12;
  1490.     gxPostscriptDoDocumentSetUpMsg = 13;
  1491.     gxPostscriptDoDocumentTrailerMsg = 14;
  1492.     gxPostscriptDoPageSetUpMsg    = 15;
  1493.     gxPostscriptSelectPaperTypeMsg = 16;
  1494.     gxPostscriptDoPageTrailerMsg = 17;
  1495.     gxPostscriptEjectPageMsg    = 18;
  1496.     gxPostscriptProcessShapeMsg    = 19;
  1497.     gxPostScriptEjectPendingPageMsg = 20;
  1498.  
  1499.  
  1500. { Identifiers for Vector imaging message overrides. }
  1501.     gxVectorPackageDataMsg        = 0;
  1502.     gxVectorLoadPensMsg            = 1;
  1503.     gxVectorVectorizeShapeMsg    = 2;
  1504.  
  1505.  
  1506. { Dialog related resource types }
  1507.     gxPrintingAlertType            = 'plrt';
  1508.     gxStatusType                = 'stat';
  1509.     gxExtendedDITLType            = 'xdtl';
  1510.     gxPrintPanelType            = 'ppnl';
  1511.     gxCollectionType            = 'cltn';
  1512.  
  1513.  
  1514. { Communication resource types }
  1515. {
  1516.     The looker resource is used by the Chooser PACK to determine what kind
  1517.     of communications this driver supports. (In order to generate/handle the 
  1518.     pop-up menu for "Connect via:".
  1519.     
  1520.     The looker resource is also used by PrinterShare to determine the AppleTalk NBP Type
  1521.     for servers created for this driver.
  1522. }
  1523.     gxLookerType                = 'look';
  1524.     gxLookerID                    = -4096;
  1525.  
  1526.  
  1527. { The communications method and private data used to connect to the printer }
  1528.     gxDeviceCommunicationsType    = 'comm';
  1529.  
  1530. {    -------------------------------------------------
  1531.  
  1532.     Resource types and IDs used by extension writers
  1533.  
  1534.     ------------------------------------------------- }
  1535.     gxExtensionUniversalOverrideID = -27136;
  1536.  
  1537.     gxExtensionImagingOverrideSelectorID = -27136;
  1538.  
  1539.     gxExtensionScopeType        = 'scop';
  1540.     gxDriverScopeID                = -27136;
  1541.     gxPrinterScopeID            = -27135;
  1542.     gxPrinterExceptionScopeID    = -27134;
  1543.  
  1544.     gxExtensionLoadType            = 'load';
  1545.     gxExtensionLoadID            = -27136;
  1546.  
  1547.     gxExtensionLoadFirst        = $00000100;
  1548.     gxExtensionLoadAnywhere        = $7FFFFFFF;
  1549.     gxExtensionLoadLast            = $FFFFFF00;
  1550.  
  1551.     gxExtensionOptimizationType    = 'eopt';
  1552.     gxExtensionOptimizationID    = -27136;
  1553.  
  1554.  
  1555. {    -----------------------------------------------
  1556.  
  1557.     Resource types and IDs used by driver writers
  1558.  
  1559.     ----------------------------------------------- }
  1560.     gxDriverUniversalOverrideID    = -27648;
  1561.     gxDriverImagingOverrideID    = -27647;
  1562.     gxDriverCompatibilityOverrideID = -27646;
  1563.  
  1564.     gxDriverFileFormatType        = 'pfil';
  1565.     gxDriverFileFormatID        = -27648;
  1566.  
  1567.  
  1568.     gxDestinationAdditionType    = 'dsta';
  1569.     gxDestinationAdditionID        = -27648;
  1570.  
  1571.  
  1572. { IMAGING RESOURCES }
  1573. {    The imaging system resource specifies which imaging system a printer
  1574.         driver wishes to use. }
  1575.  
  1576.     gxImagingSystemSelectorType    = 'isys';
  1577.     gxImagingSystemSelectorID    = -27648;
  1578.  
  1579.  
  1580. { 'exft' resource ID -- exclude font list }
  1581.     kExcludeFontListType        = 'exft';
  1582.     kExcludeFontListID            = -27648;
  1583.  
  1584. { Resource for type for color matching }
  1585.     gxColorMatchingDataType        = 'prof';
  1586.     gxColorMatchingDataID        = -27648;
  1587.  
  1588.  
  1589. { Resource type and id for the tray count }
  1590.     gxTrayCountDataType            = 'tray';
  1591.     gxTrayCountDataID            = -27648;
  1592.  
  1593.  
  1594. { Resource type for the tray names }
  1595.     gxTrayNameDataType            = 'tryn';
  1596.  
  1597.  
  1598. { Resource type for manual feed preferences, stored in DTP. }
  1599.     gxManualFeedAlertPrefsType    = 'mfpr';
  1600.     gxManualFeedAlertPrefsID    = -27648;
  1601.  
  1602. { Resource type for desktop printer output characteristics, stored in DTP. }
  1603.     gxDriverOutputType            = 'outp';
  1604.     gxDriverOutputTypeID        = 1;
  1605.  
  1606.  
  1607. { IO Resources }
  1608. { Resource type and ID for default IO and buffering resources }
  1609.     gxUniversalIOPrefsType        = 'iobm';
  1610.     gxUniversalIOPrefsID        = -27648;
  1611.  
  1612.  
  1613. {    Resource types and IDs for default implementation of CaptureOutputDevice.
  1614.         The default implementation of CaptureOutputDevice only handles PAP devices }
  1615.     gxCaptureType                = 'cpts';
  1616.     gxCaptureStringID            = -27648;
  1617.     gxReleaseStringID            = -27647;
  1618.     gxUncapturedAppleTalkType    = -27646;
  1619.     gxCapturedAppleTalkType        = -27645;
  1620.  
  1621.  
  1622. { Resource type and ID for custom halftone matrix }
  1623.     gxCustomMatrixType            = 'dmat';
  1624.     gxCustomMatrixID            = -27648;
  1625.  
  1626. { Resource type and ID for raster driver rendering preferences }
  1627.     gxRasterPrefsType            = 'rdip';
  1628.     gxRasterPrefsID                = -27648;
  1629.  
  1630.  
  1631. { Resource type for specifiying a colorset }
  1632.     gxColorSetResType            = 'crst';
  1633.  
  1634.  
  1635. { Resource type and ID for raster driver packaging preferences }
  1636.     gxRasterPackType            = 'rpck';
  1637.     gxRasterPackID                = -27648;
  1638.  
  1639.  
  1640. { Resource type and ID for raster driver packaging options }
  1641.  
  1642.     gxRasterNumNone                = 0;                            {  Number isn't output at all  }
  1643.     gxRasterNumDirect            = 1;                            {  Lowest minWidth bytes as data  }
  1644.     gxRasterNumToASCII            = 2;                            {  minWidth ASCII characters  }
  1645.  
  1646.  
  1647.     gxRasterPackOptionsType        = 'ropt';
  1648.     gxRasterPackOptionsID        = -27648;
  1649.  
  1650.  
  1651. { Resource type for the PostScript imaging system procedure set control resource }
  1652.     gxPostscriptProcSetControlType = 'prec';
  1653.  
  1654.  
  1655. { Resource type for the PostScript imaging system printer font resource }
  1656.     gxPostscriptPrinterFontType    = 'pfnt';
  1657.  
  1658.  
  1659. { Resource type and ID for the PostScript imaging system imaging preferences }
  1660.     gxPostscriptPrefsType        = 'pdip';
  1661.     gxPostscriptPrefsID            = -27648;
  1662.  
  1663. { Resource type and ID for the PostScript imaging system default scanning code }
  1664.     gxPostscriptScanningType    = 'scan';
  1665.     gxPostscriptScanningID        = -27648;
  1666.  
  1667.  
  1668. { Old Application Support Resources }
  1669.     gxCustType                    = 'cust';
  1670.     gxCustID                    = -8192;
  1671.  
  1672.  
  1673.     gxReslType                    = 'resl';
  1674.     gxReslID                    = -8192;
  1675.  
  1676.  
  1677.     gxDiscreteResolution        = 0;
  1678.  
  1679.  
  1680.     gxStlDialogResID            = -8192;
  1681.  
  1682.  
  1683.     gxJobDialogResID            = -8191;
  1684.  
  1685.  
  1686.     gxScaleTableType            = 'stab';
  1687.     gxDITLControlType            = 'dctl';
  1688.  
  1689. {    The default implementation of gxPrintDefault loads and
  1690.     PrValidates a print record stored in the following driver resource. }
  1691.     gxPrintRecordType            = 'PREC';
  1692.     gxDefaultPrintRecordID        = 0;
  1693.  
  1694.  
  1695. {
  1696.     -----------------------------------------------
  1697.  
  1698.     Resource types and IDs used in papertype files
  1699.  
  1700.     -----------------------------------------------
  1701. }
  1702. { Resource type and ID for driver papertypes placed in individual files }
  1703.     gxSignatureType                = 'sig ';
  1704.     gxPapertypeSignatureID        = 0;
  1705.  
  1706.  
  1707. { Papertype creator types }
  1708.     gxDrvrPaperType                = 'drpt';
  1709.     gxSysPaperType                = 'sypt';                        {  System paper type creator  }
  1710.     gxUserPaperType                = 'uspt';                        {  User paper type creator  }
  1711.                                                                 {  Driver creator types == driver file's creator value  }
  1712.     gxPaperTypeType                = 'ptyp';
  1713.  
  1714.  
  1715. {********************************************************************
  1716.                     Start of old "GXPrintingMessages.h/a/p" interface file.
  1717.             *********************************************************************}
  1718. { ------------------------------------------------------------------------------
  1719.  
  1720.                                     Constants and Types
  1721.  
  1722. -------------------------------------------------------------------------------- }
  1723. {
  1724.  
  1725.     ABSTRACT DATA TYPES
  1726.  
  1727. }
  1728.  
  1729. TYPE
  1730.     gxSpoolFile = ^LONGINT;
  1731. {
  1732.  
  1733.     DIALOG PANEL CONSTANTS AND TYPES
  1734.  
  1735. }
  1736.     gxPanelEvent                        = LONGINT;
  1737. { Dialog panel event equates }
  1738.  
  1739. CONST
  1740.     gxPanelNoEvt                = 0;
  1741.     gxPanelOpenEvt                = 1;                            {  Initialize and draw  }
  1742.     gxPanelCloseEvt                = 2;                            {  Your panel is going away (panel switchL, confirm or cancel)  }
  1743.     gxPanelHitEvt                = 3;                            {  There's a hit in your panel  }
  1744.     gxPanelActivateEvt            = 4;                            {  The dialog window has just been activated  }
  1745.     gxPanelDeactivateEvt        = 5;                            {  The dialog window is about to be deactivated  }
  1746.     gxPanelIconFocusEvt            = 6;                            {  The focus changes from the panel to the icon list  }
  1747.     gxPanelPanelFocusEvt        = 7;                            {  The focus changes from the icon list to the panel  }
  1748.     gxPanelFilterEvt            = 8;                            {  Every event is filtered  }
  1749.     gxPanelCancelEvt            = 9;                            {  The user has cancelled the dialog  }
  1750.     gxPanelConfirmEvt            = 10;                            {  The user has confirmed the dialog  }
  1751.     gxPanelDialogEvt            = 11;                            {  Event to be handle by dialoghandler  }
  1752.     gxPanelOtherEvt                = 12;                            {  osEvts, etc.  }
  1753.     gxPanelUserWillConfirmEvt    = 13;                            {  User has selected confirm, time to parse panel interdependencies  }
  1754.  
  1755.  
  1756. { Constants for panel responses to dialog handler calls }
  1757.  
  1758. TYPE
  1759.     gxPanelResult                        = LONGINT;
  1760.  
  1761. CONST
  1762.     gxPanelNoResult                = 0;
  1763.     gxPanelCancelConfirmation    = 1;                            {  Only valid from panelUserWillConfirmEvt - used to keep the dialog from going away  }
  1764.  
  1765.  
  1766. { Panel event info record for FilterPanelEvent and HandlePanelEvent messages }
  1767.  
  1768. TYPE
  1769.     gxPanelInfoRecordPtr = ^gxPanelInfoRecord;
  1770.     gxPanelInfoRecord = RECORD
  1771.         panelEvt:                gxPanelEvent;                            {  Why we were called  }
  1772.         panelResId:                INTEGER;                                {  'ppnl' resource ID of current panel  }
  1773.         pDlg:                    DialogPtr;                                {  Pointer to dialog  }
  1774.         theEvent:                EventRecordPtr;                            {  Pointer to event  }
  1775.         itemHit:                INTEGER;                                {  Actual item number as Dialog Mgr thinks  }
  1776.         itemCount:                INTEGER;                                {  Number of items before your items  }
  1777.         evtAction:                INTEGER;                                {  Once this event is processed, the action that will result  }
  1778.                                                                         {  (evtAction is only meaningful during filtering)  }
  1779.         errorStringId:            INTEGER;                                {  STR ID of string to put in error alert (0 means no string)  }
  1780.         theFormat:                gxFormat;                                {  The current format (only meaningful in a format dialog)  }
  1781.         refCon:                    Ptr;                                    {  refCon passed in PanelSetupRecord  }
  1782.     END;
  1783.  
  1784. { Constants for the evtAction field in PanelInfoRecord }
  1785.  
  1786. CONST
  1787.     gxOtherAction                = 0;                            {  Current item will not change  }
  1788.     gxClosePanelAction            = 1;                            {  Panel will be closed  }
  1789.     gxCancelDialogAction        = 2;                            {  Dialog will be cancelled  }
  1790.     gxConfirmDialogAction        = 3;                            {  Dialog will be confirmed  }
  1791.  
  1792.  
  1793. { Constants for the panelKind field in gxPanelSetupRecord }
  1794.  
  1795. TYPE
  1796.     gxPrintingPanelKind                    = LONGINT;
  1797. { The gxPanelSetupInfo structure is passed to GXSetupDialogPanel }
  1798.     gxPanelSetupRecordPtr = ^gxPanelSetupRecord;
  1799.     gxPanelSetupRecord = RECORD
  1800.         panelKind:                gxPrintingPanelKind;
  1801.         panelResId:                INTEGER;
  1802.         resourceRefNum:            INTEGER;
  1803.         refCon:                    Ptr;
  1804.     END;
  1805.  
  1806.  
  1807. CONST
  1808.     gxApplicationPanel            = 0;
  1809.     gxExtensionPanel            = 1;
  1810.     gxDriverPanel                = 2;
  1811.  
  1812.  
  1813. { Constants returned by gxParsePageRange message }
  1814.  
  1815. TYPE
  1816.     gxParsePageRangeResult                = LONGINT;
  1817.  
  1818. CONST
  1819.     gxRangeNotParsed            = 0;                            {  Default initial value  }
  1820.     gxRangeParsed                = 1;                            {  Range has been parsed  }
  1821.     gxRangeBadFromValue            = 2;                            {  From value is bad  }
  1822.     gxRangeBadToValue            = 3;                            {  To value is bad  }
  1823.  
  1824. {
  1825.  
  1826.     STATUS-RELATED CONSTANTS AND TYPES
  1827.  
  1828. }
  1829.  
  1830. { Structure for status messages }
  1831.  
  1832. TYPE
  1833.     gxStatusRecordPtr = ^gxStatusRecord;
  1834.     gxStatusRecord = RECORD
  1835.         statusType:                INTEGER;                                {  One of the ids listed above (nonFatalError, etc. )  }
  1836.         statusId:                INTEGER;                                {  Specific status (out of paper, etc.)  }
  1837.         statusAlertId:            INTEGER;                                {     Printing alert ID (if any) for status  }
  1838.         statusOwner:            gxOwnerSignature;                        {  Creator type of status owner  }
  1839.         statResId:                INTEGER;                                {  ID for 'stat' resource  }
  1840.         statResIndex:            INTEGER;                                {  Index into 'stat' resource for this status  }
  1841.         dialogResult:            INTEGER;                                {  ID of button string selected on dismissal of printing alert  }
  1842.         bufferLen:                INTEGER;                                {  Number of bytes in status buffer - total record size must be <= 512  }
  1843.         statusBuffer:            SInt8;                                    {  User response from alert  }
  1844.     END;
  1845.  
  1846.  
  1847. { Constants for statusType field of gxStatusRecord }
  1848.  
  1849. CONST
  1850.     gxNonFatalError                = 1;                            {  An error occurred, but the job can continue  }
  1851.     gxFatalError                = 2;                            {  A fatal error occurred-- halt job  }
  1852.     gxPrinterReady                = 3;                            {  Tells QDGX to leave alert mode  }
  1853.     gxUserAttention                = 4;                            {  Signals initiation of a modal alert  }
  1854.     gxUserAlert                    = 5;                            {  Signals initiation of a moveable modal alert  }
  1855.     gxPageTransmission            = 6;                            {  Signals page sent to printer, increments page count in strings to user  }
  1856.     gxOpenConnectionStatus        = 7;                            {  Signals QDGX to begin animation on printer icon  }
  1857.     gxInformationalStatus        = 8;                            {  Default status type, no side effects  }
  1858.     gxSpoolingPageStatus        = 9;                            {  Signals page spooled, increments page count in spooling dialog  }
  1859.     gxEndStatus                    = 10;                            {  Signals end of spooling  }
  1860.     gxPercentageStatus            = 11;                            {  Signals QDGX as to the amount of the job which is currently complete  }
  1861.  
  1862.  
  1863. { Structure for gxWriteStatusToDTPWindow message }
  1864.  
  1865. TYPE
  1866.     gxDisplayRecordPtr = ^gxDisplayRecord;
  1867.     gxDisplayRecord = RECORD
  1868.         useText:                BOOLEAN;                                {  Use text as opposed to a picture  }
  1869.         padByte:                SInt8;
  1870.         hPicture:                Handle;                                    {  if !useText, the picture handle  }
  1871.         theText:                Str255;                                    {  if useText, the text  }
  1872.     END;
  1873.  
  1874.  
  1875. {-----------------------------------------------}
  1876. { paper mapping-related constants and types...  }
  1877. {-----------------------------------------------}
  1878.  
  1879.     gxTrayMapping                        = LONGINT;
  1880.  
  1881. CONST
  1882.     gxDefaultTrayMapping        = 0;
  1883.     gxConfiguredTrayMapping        = 1;
  1884.  
  1885.  
  1886.  
  1887. { ------------------------------------------------------------------------------
  1888.  
  1889.                 API Functions callable only from within message overrides
  1890.  
  1891. -------------------------------------------------------------------------------- }
  1892.  
  1893. {
  1894.     Message Sending API Routines
  1895. }
  1896. {
  1897.  
  1898.     How to use the GXPRINTINGDISPATCH macro...
  1899.     
  1900.     If your driver or extension is large, you may want to segment it
  1901.     across smaller boundaries than is permitted by the messaging system.
  1902.     Without using the Printing Manager's segmentation manager directly,
  1903.     the smallest segment you can create consists of the code to override
  1904.     a single message.  If you are overriding workhorse messages such as
  1905.     RenderPage, you may want to divide up the work among many functions
  1906.     distributed across several segments.  Here's how...
  1907.     
  1908.     The Printing Manager segment scheme involves the construction of a
  1909.     single 32-bit dispatch selector, which contains all the information
  1910.     necessary for the dispatcher to find a single routine.  It contains the
  1911.     segment's resource ID, and the offset within the segment which contains
  1912.     the start of the routine.  The GXPRINTINGDISPATCH macro will construct the
  1913.     dispatch selector for you, as well as the code to do the dispatch.
  1914.     
  1915.     Usually, it is convenient to start your segment with a long aligned jump table,
  1916.     beginning after the 4 byte header required by the Printing Manager.  The
  1917.     macro assumes this is the case and takes a 1-based routine selector from
  1918.     which it conmstructs the offset.
  1919.     
  1920.     For example, if your code is in resource 'pdvr' (print driver), ID=2
  1921.     at offset=12 (third routine in segment), you would declare your
  1922.     routine as follows:
  1923.     
  1924.     OSErr MyRenderingRoutine (long param1, Ptr param2)
  1925.         = GXPRINTINGDISPATCH(2, 3);
  1926.         
  1927.     Remember, ALL segment dispatches must return OSErr.  If your routine
  1928.     does not generate errors, you must still declare it to return OSErr
  1929.     and have the routine itself return noErr.
  1930.     
  1931.     An alternative way to call across segments is to call the GXPrintingDispatch
  1932.     function directly.  You must construct the 32-bit selector yourself and pass
  1933.     it as the first parameter.  This is usually not preferable since you don't get
  1934.     type-checking unless you declare a prototype as shown above, and your code
  1935.     isn't as easy to read.
  1936.     
  1937.     So given the above prototype, there are two ways to call the function:
  1938.     
  1939.         anErr = MyRenderingRoutine(p1, p2);            // Free type checking!
  1940.         
  1941.     or:
  1942.     
  1943.         #define kMyRenderRoutineSelector 0x0002000C
  1944.         anErr = GXPrintingDispatch(kMyRenderRoutineSelector, p1, p2);        // No type-checking!
  1945.     
  1946.     
  1947.     Both have the same effect.
  1948.  
  1949. }
  1950. FUNCTION GXGetJob: gxJob; C;
  1951. FUNCTION GXGetMessageHandlerResFile: INTEGER; C;
  1952. FUNCTION GXSpoolingAborted: BOOLEAN; C;
  1953. FUNCTION GXJobIdle: OSErr; C;
  1954. FUNCTION GXReportStatus(statusID: LONGINT; statusIndex: LONGINT): OSErr; C;
  1955. FUNCTION GXAlertTheUser(VAR statusRec: gxStatusRecord): OSErr; C;
  1956. FUNCTION GXSetupDialogPanel(VAR panelRec: gxPanelSetupRecord): OSErr; C;
  1957. FUNCTION GXCountTrays(VAR numTrays: gxTrayIndex): OSErr; C;
  1958. FUNCTION GXGetTrayName(trayNumber: gxTrayIndex; VAR trayName: Str31): OSErr; C;
  1959. FUNCTION GXSetTrayPaperType(whichTray: gxTrayIndex; aPapertype: gxPaperType): OSErr; C;
  1960. FUNCTION GXGetTrayPaperType(whichTray: gxTrayIndex; aPapertype: gxPaperType): OSErr; C;
  1961. FUNCTION GXGetTrayMapping(VAR trayMapping: gxTrayMapping): OSErr; C;
  1962. PROCEDURE GXCleanupStartJob; C;
  1963. PROCEDURE GXCleanupStartPage; C;
  1964. PROCEDURE GXCleanupOpenConnection; C;
  1965. PROCEDURE GXCleanupStartSendPage; C;
  1966.  
  1967. { ------------------------------------------------------------------------------
  1968.  
  1969.                     Constants and types for Universal Printing Messages
  1970.  
  1971. -------------------------------------------------------------------------------- }
  1972.  
  1973. { Options for gxCreateSpoolFile message }
  1974.  
  1975. CONST
  1976.     gxNoCreateOptions            = $00000000;                    {  Just create the file  }
  1977.     gxInhibitAlias                = $00000001;                    {  Do not create an alias in the PMD folder  }
  1978.     gxInhibitUniqueName            = $00000002;                    {  Do not append to the filename to make it unique  }
  1979.     gxResolveBitmapAlias        = $00000004;                    {  Resolve bitmap aliases and duplicate data in file  }
  1980.  
  1981.  
  1982. { Options for gxCloseSpoolFile message }
  1983.     gxNoCloseOptions            = $00000000;                    {  Just close the file  }
  1984.     gxDeleteOnClose                = $00000001;                    {  Delete the file rather than closing it  }
  1985.     gxUpdateJobData                = $00000002;                    {  Write current job information into file prior to closing  }
  1986.     gxMakeRemoteFile            = $00000004;                    {  Mark job as a remote file  }
  1987.  
  1988.  
  1989. { Options for gxCreateImageFile message }
  1990.     gxNoImageFile                = $00000000;                    {  Don't create image file  }
  1991.     gxMakeImageFile                = $00000001;                    {  Create an image file  }
  1992.     gxEachPlane                    = $00000002;                    {  Only save up planes before rewinding  }
  1993.     gxEachPage                    = $00000004;                    {  Save up entire pages before rewinding  }
  1994.     gxEntireFile                = $00000006;                    {  Save up the entire file before rewinding  }
  1995.  
  1996.  
  1997. { Options for gxBufferData message }
  1998.     gxNoBufferOptions            = $00000000;
  1999.     gxMakeBufferHex                = $00000001;
  2000.     gxDontSplitBuffer            = $00000002;
  2001.  
  2002.  
  2003. { Structure for gxDumpBuffer and gxFreeBuffer messages }
  2004.  
  2005. TYPE
  2006.     gxPrintingBufferPtr = ^gxPrintingBuffer;
  2007.     gxPrintingBuffer = RECORD
  2008.         size:                    LONGINT;                                {  Size of buffer in bytes  }
  2009.         userData:                LONGINT;                                {  Client assigned id for the buffer  }
  2010.         data:                    SInt8;                                    {  Array of size bytes  }
  2011.     END;
  2012.  
  2013.  
  2014. { Structure for gxRenderPage message }
  2015.     gxPageInfoRecordPtr = ^gxPageInfoRecord;
  2016.     gxPageInfoRecord = RECORD
  2017.         docPageNum:                LONGINT;                                {  Number of page being printed  }
  2018.         copyNum:                LONGINT;                                {  Copy number being printed  }
  2019.         formatChanged:            BOOLEAN;                                {  True if format changed from last page  }
  2020.         pageChanged:            BOOLEAN;                                {  True if page contents changed from last page  }
  2021.         internalUse:            LONGINT;                                {  Private  }
  2022.     END;
  2023.  
  2024.  
  2025. { ------------------------------------------------------------------------------
  2026.  
  2027.                                 Universal Printing Messages
  2028.  
  2029. -------------------------------------------------------------------------------- }
  2030. {******************************************************************
  2031.                     Start of old "GXPrintingErrors.h/a/p" interface file.
  2032.             *******************************************************************}
  2033.  
  2034. CONST
  2035.     gxPrintingResultBase        = -510;                            { First QuickDraw GX printing error code. }
  2036.  
  2037. {RESULT CODES FOR QUICKDRAW GX PRINTING OPERATIONS}
  2038.     gxAioTimeout                = -510;                            { -510 : Timeout condition occurred during operation }
  2039.     gxAioBadRqstState            = -511;                            { -511 : Async I/O request in invalid state for operation }
  2040.     gxAioBadConn                = -512;                            { -512 : Invalid Async I/O connection refnum }
  2041.     gxAioInvalidXfer            = -513;                            { -513 : Read data transfer structure contained bad values }
  2042.     gxAioNoRqstBlks                = -514;                            { -514 : No available request blocks to process request }
  2043.     gxAioNoDataXfer                = -515;                            { -515 : Data transfer structure pointer not specified }
  2044.     gxAioTooManyAutos            = -516;                            { -516 : Auto status request already active }
  2045.     gxAioNoAutoStat                = -517;                            { -517 : Connection not configured for auto status }
  2046.     gxAioBadRqstID                = -518;                            { -518 : Invalid I/O request identifier }
  2047.     gxAioCantKill                = -519;                            { -519 : Comm. protocol doesn't support I/O term }
  2048.     gxAioAlreadyExists            = -520;                            { -520 : Protocol spec. data already specified }
  2049.     gxAioCantFind                = -521;                            { -521 : Protocol spec. data does not exist }
  2050.     gxAioDeviceDisconn            = -522;                            { -522 : Machine disconnected from printer }
  2051.     gxAioNotImplemented            = -523;                            { -523 : Function not implemented }
  2052.     gxAioOpenPending            = -524;                            { -524 : Opening a connection for protocol, but another open pending }
  2053.     gxAioNoProtocolData            = -525;                            { -525 : No protocol specific data specified in request }
  2054.     gxAioRqstKilled                = -526;                            { -526 : I/O request was terminated }
  2055.     gxBadBaudRate                = -527;                            { -527 : Invalid baud rate specified }
  2056.     gxBadParity                    = -528;                            { -528 : Invalid parity specified }
  2057.     gxBadStopBits                = -529;                            { -529 : Invalid stop bits specified }
  2058.     gxBadDataBits                = -530;                            { -530 : Invalid data bits specified }
  2059.     gxBadPrinterName            = -531;                            { -531 : Bad printer name specified }
  2060.     gxAioBadMsgType                = -532;                            { -532 : Bad masType field in transfer info structure }
  2061.     gxAioCantFindDevice            = -533;                            { -533 : Cannot locate target device }
  2062.     gxAioOutOfSeq                = -534;                            { -534 : Non-atomic SCSI requests submitted out of sequence }
  2063.     gxPrIOAbortErr                = -535;                            { -535 : I/O operation aborted }
  2064.     gxPrUserAbortErr            = -536;                            { -536 : User aborted }
  2065.     gxCantAddPanelsNowErr        = -537;                            { -537 : Can only add panels during driver switch or dialog setup }
  2066.     gxBadxdtlKeyErr                = -538;                            { -538 : Unknown key for xdtl - must be radiobutton, etc }
  2067.     gxXdtlItemOutOfRangeErr        = -539;                            { -539 : Referenced item does not belong to panel }
  2068.     gxNoActionButtonErr            = -540;                            { -540 : Action button is nil }
  2069.     gxTitlesTooLongErr            = -541;                            { -541 : Length of buttons exceeds alert maximum width }
  2070.     gxUnknownAlertVersionErr    = -542;                            { -542 : Bad version for printing alerts }
  2071.     gxGBBufferTooSmallErr        = -543;                            { -543 : Buffer too small. }
  2072.     gxInvalidPenTable            = -544;                            { -544 : Invalid vector driver pen table. }
  2073.     gxIncompletePrintFileErr    = -545;                            { -545 : Print file was not completely spooled }
  2074.     gxCrashedPrintFileErr        = -546;                            { -546 : Print file is corrupted }
  2075.     gxInvalidPrintFileVersion    = -547;                            { -547 : Print file is incompatible with current QuickDraw GX version }
  2076.     gxSegmentLoadFailedErr        = -548;                            { -548 : Segment loader error }
  2077.     gxExtensionNotFoundErr        = -549;                            { -549 : Requested printing extension could not be found }
  2078.     gxDriverVersionErr            = -550;                            { -550 : Driver too new for current version of QuickDraw GX }
  2079.     gxImagingSystemVersionErr    = -551;                            { -551 : Imaging system too new for current version of QuickDraw GX }
  2080.     gxFlattenVersionTooNew        = -552;                            { -552 : Flattened object format too new for current version of QDGX }
  2081.     gxPaperTypeNotFound            = -553;                            { -553 : Requested papertype could not be found }
  2082.     gxNoSuchPTGroup                = -554;                            { -554 : Requested papertype group could not be found }
  2083.     gxNotEnoughPrinterMemory    = -555;                            { -555 : Printer does not have enough memory for fonts in document }
  2084.     gxDuplicatePanelNameErr        = -556;                            { -556 : Attempt to add more than 10 panels with the same name }
  2085.     gxExtensionVersionErr        = -557;                            { -557 : Extension too new for current version of QuickDraw GX }
  2086.  
  2087.  
  2088.  
  2089. {$ALIGN RESET}
  2090. {$POP}
  2091.  
  2092. {$SETC UsingIncludes := GXPrintingIncludes}
  2093.  
  2094. {$ENDC} {__GXPRINTING__}
  2095.  
  2096. {$IFC NOT UsingIncludes}
  2097.  END.
  2098. {$ENDC}
  2099.